package Day017_缓冲流_转换流_序列化流_打印流.demo3_转换文件编码;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

/**
 * @author zhangyan
 * @date 2020/5/9 12:03
 */
public class Test {
    public static void main(String[] args) throws Exception{
        /*
            练习转换文件编码:
                将GBK编码的文本文件，转换为UTF-8编码的文本文件。
         */
        // 1.创建转换输入流对象,关联数据源文件路径,指定编码为gbk
        FileInputStream fis = new FileInputStream("day17\\bbb\\gbk.txt");
        InputStreamReader isr = new InputStreamReader(fis,"gbk");

        // 2.创建转换输出流对象,关联目的地文件路径,指定编码为utf8
        FileOutputStream fos = new FileOutputStream("day17\\bbb\\gbkUtf8.txt");
        OutputStreamWriter osw = new OutputStreamWriter(fos,"utf8");

        // 3.定义一个变量用来存储读取到的字符数据
        int len;
        // 4.循环读
        while ((len = isr.read()) != -1) {
            // 5.在循环中,写出数据
            osw.write(len);
        }
        // 6.关闭流,释放资源
        osw.close();
        isr.close();
    }
}
